﻿// Tischpreiskegeln
//
// vorgesehen für die FF Feichtenberg zur Unterstützung des alljährlich stattfindenen
// Tischpreiskegelns.
// 
// Autoren:
// Eder Philipp S0910438031
// Lutt Martin  S0910438076
// (FH Wels)
//
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace fff_preiskegeln
{
    /// <summary>
    /// Es kann aus einer Auswahl an Vereinen die gewünschten ausgewählt werden
    /// </summary>
    public partial class frmVereinsauswahl : Form
    {
        dbVerbindung verbindung;
        int[] ivereinsvorwahl;
        /// <summary>
        /// Konstruktor
        /// </summary>
        /// <param name="datenbank">Verbindungsdaten</param>
        /// <param name="vereinsvorwahl">Array der IDs von den ausgewählten Vereinen</param>
        public frmVereinsauswahl(dbVerbindung datenbank, int[] vereinsvorwahl)
        {
            this.verbindung = datenbank;
            InitializeComponent();
            ivereinsvorwahl = vereinsvorwahl;
        }        
        /// <summary>
        /// Ruft ein Fenster auf, in dem man einen neuen Verein anlegen kann
        /// </summary>
        private void btnneuerverein_Click(object sender, EventArgs e)
        {
            frmvereinanlegen verein = new frmvereinanlegen(this.verbindung);
            verein.ShowDialog();
        }
        /// <summary>
        /// Schliesst das Fenster
        /// </summary>
        private void btnabbrechen_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        /// <summary>
        /// Es werden alle vorhandenen Vereine aus der Datenbank geholt und
        /// in einer ComboListBox angezeigt
        /// </summary>
        private void frmVereinsauswahl_Activated(object sender, EventArgs e)
        {
            this.clbxVereine.Items.Clear();
            try
            {
                DataTable vereine = verbindung.AbfrageVereine();
                int zaehler = 0;
                foreach (DataRow row in vereine.Rows)
                {
                    this.clbxVereine.Items.Add("[" + row[0] + "] " + row[1] + " ; " + row[2]);
                    for (int i = 0; i < ivereinsvorwahl.Length; i++)
                    {
                        if (ivereinsvorwahl[i] == Convert.ToInt32(row[0]))
                        {
                            this.clbxVereine.SetItemChecked(zaehler, true);
                        }
                    }
                    zaehler++;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Fehler");
            }
        }
        /// <summary>
        /// Es werden die ID's der ausgewählten Vereine in einem StringArray abgespeichert.
        /// </summary>
        /// <returns>Alle ausgewählten Vereine</returns>
        public string[,] VereineAusgewaehlt()
        {
            string[,] vereine=new string[30,3];

            int startposition=1;
            int endeposition = 2;

            int zaehler = 0;

            string zeichensatz;

            for (int i = 0; i < this.clbxVereine.Items.Count; i++)
            {
                if (this.clbxVereine.GetItemChecked(i) == true)
                {
                    zeichensatz = this.clbxVereine.Items[i].ToString();

                    startposition = zeichensatz.IndexOf('[') + 1;
                    vereine[zaehler, 0] = zeichensatz.Substring(startposition, 2);
                    vereine[zaehler, 0] = vereine[zaehler, 0].Replace("]", " ");

                    startposition = zeichensatz.IndexOf(';') + 2;
                    endeposition = zeichensatz.Count() - startposition;
                    vereine[zaehler, 2] = zeichensatz.Substring(startposition, endeposition);

                    startposition = zeichensatz.IndexOf(']') + 1;
                    endeposition = zeichensatz.Count() - startposition- endeposition-2;
                    vereine[zaehler, 1] = zeichensatz.Substring(startposition, endeposition);

                    zaehler++;
                }
            }
            return(vereine);
        }
    }
}
